<!DOCTYPE html>
<html>
<head>
  <title></title>
  <style type="text/css">
  body {
  background-color: #E0D8C8;
  color: #000000;
  }
  dt.c3 {font-weight: bold}
  div.c2 {text-align: center}
  a.c1 {font-weight: bold}
  </style>
</head>
<body>
  <dl compact>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="air" id="air">air</a>
    </dt>
    <dd>
      The ``air'' shader mimics the behaviour of atmosphere.
      Volumes of modeled air can be given a realistic appearance by
      using this shader. The shader performs basic Beer's Law
      extinction and contrast reduction. It should be applied only
      on regions where the air code has been set to a non-zero
      value. See <a href="mged_cmd_index.html#edcodes">edcodes</a> for
      information about setting the air flag on the region).
      <p>The ``air'' shader assumes that the volume is a
      homogeneous volume of non-turbulent air. The shader provides
      crude modeling of absorption and scattering effects in the
      atmosphere. Absorption and/or extinction effects are modeled
      by reducing the transmission of the air volume by an amount
      proportional to the distance traveled through the air.</p>
      <pre>
Transmission = exp( - Tau )
Tau     = optical path depth
        = density_per_unit_distance * distance
</pre>
      <p>Scattering effects are modeled by replacing the
      non-transmitted color energy with an ambient energy.
      Specifically, the color of the air region is used for the
      non-transmission portion. The result is that short paths
      through the air volume are relatively clear, whereas long
      paths become very muddied with the color of the air.</p>
      <h3>Parameters</h3>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td></td>
          </tr>
          <tr>
            <td>dpm</td>
            <td align="center">-</td>
            <td>0.1</td>
          </tr>
        </table>
      </div>
      <dl compact>
        <dt>dpm</dt>
        <dd>Density per meter. This parameter describes the optical
        density of the atmosphere per unit meter of distance.</dd>
      </dl>
      <h3>Example</h3>
      <pre>
        mged&gt; mater air.r air dpm=5000 180 180 220 0
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="emist" id="emist">emist</a>
    </dt>
    <dd>
      The ``emist'' shader is much like the <a href="#air">air</a>
      shader except that the density of the atmosphere varies
      exponentially as a function of altitude. Above a certain
      delta from the Z=0 plane, emist should be identical to
      ``air''. Below this level, density increases exponentially.
      <h3>Parameters</h3>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td></td>
          </tr>
          <tr>
            <td>dpm</td>
            <td align="center">-</td>
            <td>0.1</td>
          </tr>
          <tr>
            <td>delta</td>
            <td>d</td>
            <td>0.0</td>
          </tr>
        </table>
      </div>
      <dl compact>
        <dt>dpm</dt>
        <dd>Density per meter. This parameter describes the optical
        density of the atmosphere per unit meter of distance.</dd>
        <dt>delta</dt>
        <dd>This is the height (above the Z=0 plane) at which the
        fog starts to get exponentially denser. From this altitude
        downward density increases. By default this value is
        specified in millimeters, (regardless of the current MGED
        editing units). It is possible to specify values in other
        units by appending the units as a suffix to the value. For
        example: ``2ft''.</dd>
      </dl>
      <h3>Examples</h3>
      <pre>
        mater swamp_gas.r emist "dpm=5000 delta=2ft" 180 180 220 0
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="marble" id="marble">marble</a>
    </dt>
    <dd>
      The "marble" shader simulates the color patterns present in
      some types of marble. This is a procedural shader based upon
      a fractal noise function known as turbulence.
      <p>The fractal noise function produces a pseudo- random
      number in the range [0.0&nbsp;...&nbsp;1.0] from the 3-space
      coordinates of a point in the bounding volume of the region.
      This noise value is used to determine the ratio of two colors
      present as the final color of the object. The object color
      and a shader-specific color are combined. The color produced
      is a combination of</p>
      <p>The fractal pattern has infinite resolution. As a result,
      the borders of the color splashes never become pixelated, no
      mater how close the eyepoint is to the surface.</p>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td></td>
          </tr>
          <tr>
            <th colspan="3">Noise Parameters</th>
          </tr>
          <tr>
            <td>lacunarity</td>
            <td>l</td>
            <td>2.1753974</td>
          </tr>
          <tr>
            <td>H</td>
            <td>H</td>
            <td>1.0</td>
          </tr>
          <tr>
            <td>octaves</td>
            <td>o</td>
            <td>4.0</td>
          </tr>
          <tr>
            <td>size</td>
            <td>s</td>
            <td>1.0</td>
          </tr>
          <tr>
            <td>vscale</td>
            <td>v</td>
            <td>1.0/1.0/1.0</td>
          </tr>
          <tr>
            <td>delta</td>
            <td>d</td>
            <td>1000/1000/1000</td>
          </tr>
          <tr>
            <td></td>
          </tr>
          <tr>
            <th colspan="3">Shader Specific Parameters</th>
          </tr>
          <tr>
            <td>color2</td>
            <td>c2</td>
            <td>250/100/100</td>
          </tr>
        </table>
      </div>
      <dl>
        <dt class="c3">Lacunarity</dt>
        <dd>The grid on which the noise function is built is scaled
        by this value for each successive octave of noise which
        will be combined to produce the final result.</dd>
        <dt class="c3">H</dt>
        <dd></dd>
        <dt class="c3">Octaves</dt>
        <dd>The number of times the noise grid will be scaled and
        recombined to produce the final noise function</dd>
        <dt class="c3">Size, Vscale</dt>
        <dd>If <b>size</b> is set it is used as a scalar which
        defines the size of the noise grid on the object. So if
        t2=0.5 and size=5mm then splotches of color3 would tend to
        be no larger than 5-10mm. If non-uniform scaling is
        required, Vscale can specify the grid size in X, Y and
        Z.</dd>
        <dt class="c3">Delta</dt>
        <dd>This specifies a translation in noise space for the
        origin of region space. Since the origin of noise space is
        reflected 8 ways, it is undesirable to have that portion of
        noise space overlap with region space.</dd>
      </dl>
      <h3>Examples</h3>
      <pre>
        mater column.r stack marble s=512;plastic 250 240 280 0
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="camo" id="camo">camo</a>
    </dt>
    <dd>
      The "camo" shader creates a pseudo-random tri-color
      camouflage pattern on the object using a fractal noise
      pattern. This is a procedural shader based upon a fractal
      noise function known as fractional brownian motion or fBm.
      <p>The fractal noise function produces a pseudo- random
      number in the range [-1.0 ... 1.0] from the 3-space
      coordinates of a point in the bounding volume of the region.
      This noise value is used to determine the color of the object
      at the given location.</p>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Noise value</th>
            <th>Object Color</th>
          </tr>
          <tr>
            <td>nv &lt; thresh1</td>
            <td align="center">color1</td>
          </tr>
          <tr>
            <td>
              nv &lt; thresh1<br>
              <div class="c2">
                and
              </div>nv &lt; thresh2
            </td>
            <td align="center">color2</td>
          </tr>
          <tr>
            <td>nv &gt; thresh2</td>
            <td align="center">color3</td>
          </tr>
        </table>
      </div>
      <p>The fractal pattern has infinite resolution. As a result,
      the borders of the color splashes never become pixelated, no
      mater how close the eyepoint is to the surface.</p>
      <h3>Parameters</h3>
      <p>The parameters associated with the noise function are
      common to all shaders based upon the noise functions.</p>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td></td>
          </tr>
          <tr>
            <th colspan="3">Noise Parameters</th>
          </tr>
          <tr>
            <td>lacunarity</td>
            <td>l</td>
            <td>2.1753974</td>
          </tr>
          <tr>
            <td>H</td>
            <td>H</td>
            <td>1.0</td>
          </tr>
          <tr>
            <td>octaves</td>
            <td>o</td>
            <td>4.0</td>
          </tr>
          <tr>
            <td>size</td>
            <td>s</td>
            <td>1.0</td>
          </tr>
          <tr>
            <td>vscale</td>
            <td>v</td>
            <td>1.0/1.0/1.0</td>
          </tr>
          <tr>
            <td>delta</td>
            <td>d</td>
            <td>1000/1000/1000</td>
          </tr>
          <tr>
            <td></td>
          </tr>
          <tr>
            <th colspan="3">Shader Specific Parameters</th>
          </tr>
          <tr>
            <td>thresh1</td>
            <td>t1</td>
            <td>-0.25</td>
          </tr>
          <tr>
            <td>thresh2</td>
            <td>t2</td>
            <td>0.25</td>
          </tr>
          <tr>
            <td>color1</td>
            <td>c1</td>
            <td>97/74/41</td>
          </tr>
          <tr>
            <td>color2</td>
            <td>c2</td>
            <td>26/77/10</td>
          </tr>
          <tr>
            <td>color3</td>
            <td>c3</td>
            <td>38/38/38</td>
          </tr>
        </table>
      </div>
      <dl>
        <dt class="c3">Lacunarity</dt>
        <dd>The grid on which the noise function is built is scaled
        by this value for each successive octave of noise which
        will be combined to produce the final result.</dd>
        <dt class="c3">H</dt>
        <dd></dd>
        <dt class="c3">Octaves</dt>
        <dd>The number of times the noise grid will be scaled and
        recombined to produce the final noise function</dd>
        <dt class="c3">Size, Vscale</dt>
        <dd>If <b>size</b> is set it is used as a scalar which
        defines the size of the noise grid on the object. So if
        t2=0.5 and size=5mm then splotches of color3 would tend to
        be no larger than 5-10mm. If non-uniform scaling is
        required, Vscale can specify the grid size in X, Y and
        Z.</dd>
        <dt class="c3">Delta</dt>
        <dd>This specifies a translation in noise space for the
        origin of region space. Since the origin of noise space is
        reflected 8 ways, it is undesirable to have that portion of
        noise space overlap with region space.</dd>
      </dl>
      <h3>Examples</h3>
      <pre>
        mged&gt; shader tent.r stack "camo ; plastic"
</pre>
      <h3>Limitations</h3>Because of the continuous nature of the
      fractal noise space, it is impossible to get a splash of
      color1 directly adjacent to a splash of color3.
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="fire" id="fire">fire</a>
    </dt>
    <dd>
      The ``fire'' shader creates a space-filling semi-transparent
      color texture that resembles fire.
      <h3>Parameters</h3>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td></td>
          </tr>
          <tr>
            <th colspan="3">Noise Parameters</th>
          </tr>
          <tr>
            <td>lacunarity</td>
            <td>l</td>
            <td>2.1753974</td>
          </tr>
          <tr>
            <td>H</td>
            <td>H</td>
            <td>1.0</td>
          </tr>
          <tr>
            <td>octaves</td>
            <td>o</td>
            <td>4.0</td>
          </tr>
          <tr>
            <td>size</td>
            <td>s</td>
            <td>1.0</td>
          </tr>
          <tr>
            <td>vscale</td>
            <td>v</td>
            <td>1.0/1.0/1.0</td>
          </tr>
          <tr>
            <td>delta</td>
            <td>d</td>
            <td>1000/1000/1000</td>
          </tr>
          <tr>
            <td></td>
          </tr>
          <tr>
            <th colspan="3">Shader Specific Parameters</th>
          </tr>
          <tr>
            <td>flicker</td>
            <td>f</td>
            <td>0.0</td>
          </tr>
          <tr>
            <td>stretch</td>
            <td>st</td>
            <td>0.0</td>
          </tr>
        </table>
      </div>
      <dl compact>
        <dt>flicker</dt>
        <dd>Specifies rater of translation through noise space for
        animation. Animation frametime*flicker produces a delta of
        Z in noise space for the given frame/pixel. Useful values
        are probably in the range 0 .. 10.</dd>
        <dt>stretch</dt>
        <dd>Specifies a scaling of the exponential stretch of the
        flames. Flame stretch effect = exp(pos[Z] * - stretch)</dd>
      </dl>
      <h3>Examples</h3>
      <pre>
        mged&gt; mater air.r air dpm=5000 180 180 220 0
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="light" id="light">light</a>
    </dt>
    <dd>When light sources are explicitly modeled in the geometry
    description, they are given a shader type ``light''. The color
    of the region defines the color of the light.</dd>
    <dd>
      <h3>Parameters</h3>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td></td>
          </tr>
          <tr>
            <td>inten</td>
            <td align="center">-</td>
            <td>1000</td>
          </tr>
          <tr>
            <td>angle</td>
            <td align="center">-</td>
            <td>180</td>
          </tr>
          <tr>
            <td>fract</td>
            <td align="center">-</td>
            <td>(computed)</td>
          </tr>
          <tr>
            <td>aim</td>
            <td align="center">-</td>
            <td>0</td>
          </tr>
          <tr>
            <td>shadows</td>
            <td align="center">-</td>
            <td>1</td>
          </tr>
          <tr>
            <td>infinite</td>
            <td align="center">-</td>
            <td>0</td>
          </tr>
          <tr>
            <td>invisible</td>
            <td align="center">-</td>
            <td>0</td>
          </tr>
        </table>
      </div>
      <dl compact>
        <dt>intensity</dt>
        <dd>Intensity of the light source (nominally in
        lumens)</dd>
        <dt>angle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</dt>
        <dd>Beam dispersion angle (degrees 0..180)</dd>
        <dt>fraction</dt>
        <dd>Fraction of total light</dd>
        <dt>shadows</dt>
        <dd>Boolean: Does light cast shadows</dd>
        <dt>infinite</dt>
        <dd>Boolean: Is light source infinitely distant</dd>
        <dt>aim&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</dt>
        <dd>Boolean: Take light aim direction from solid</dd>
        <dt>invisible</dt>
        <dd>Boolean: Is light source visible as an object</dd>
      </dl>
      <h3>Example</h3>
      <pre>
        mged&gt; shader lightbulb.r light
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="fbmbump" id="fbmbump">fbmbump</a>
    </dt>
    <dt>
      <a class="c1" name="turbump" id="turbump">turbump</a>
    </dt>
    <dt>
      <a class="c1" name="fbmcolor" id="fbmcolor">fbmcolor</a>
    </dt>
    <dt>
      <a class="c1" name="turcolor" id="turcolor">turcolor</a>
    </dt>
    <dd>These shaders apply a noise function to the surface normal
    or the intensity of the surface color. The ``bump'' shaders
    apply either fBm or turbulence noise to the surface normal of
    the object. The ``color'' shaders apply either fBm or
    turbulence noise to the intensity of the surface color.</dd>
    <dd>
      <h3>Parameters</h3>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td></td>
          </tr>
          <tr>
            <th colspan="3">Noise Parameters</th>
          </tr>
          <tr>
            <td>lacunarity</td>
            <td>l</td>
            <td>2.1753974</td>
          </tr>
          <tr>
            <td>H</td>
            <td>H</td>
            <td>1.0</td>
          </tr>
          <tr>
            <td>octaves</td>
            <td>o</td>
            <td>4.0</td>
          </tr>
          <tr>
            <td>size</td>
            <td>s</td>
            <td>1.0</td>
          </tr>
          <tr>
            <td>vscale</td>
            <td>v</td>
            <td>1.0/1.0/1.0</td>
          </tr>
          <tr>
            <td>delta</td>
            <td>d</td>
            <td>1000/1000/1000</td>
          </tr>
          <tr>
            <td></td>
          </tr>
          <tr>
            <th colspan="3">Shader Specific Parameters</th>
          </tr>
          <tr>
            <td>angle</td>
            <td>a/ang</td>
            <td>1.0</td>
          </tr>
          <tr>
            <td></td>
          </tr>
        </table>
      </div>
      <dl compact>
        <dt>angle</dt>
        <dd>Maximum angle of the surface normal deviation.</dd>
      </dl>
      <h3>Example</h3>
      <pre>
        mged&gt; shader air.r proto
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="plastic" id="plastic">plastic</a>
    </dt>
    <dt>
      <a class="c1" name="mirror" id="mirror">mirror</a>
    </dt>
    <dt>
      <a class="c1" name="glass" id="glass">glass</a>
    </dt>
    <dd>These are really all just the Phong shader ``plastic''. The
    ``mirror'' and ``glass'' shaders simply set different
    defaults.</dd>
    <dd>
      <h3>Parameters</h3>
      <div class="c2">
        <table border="1">
          <tr>
            <th rowspan="2">Parameter</th>
            <th rowspan="2">Abbreviation</th>
            <th colspan="3">Default Value</th>
          </tr>
          <tr>
            <th>plastic</th>
            <th>mirror</th>
            <th>glass</th>
          </tr>
          <tr>
            <td></td>
          </tr>
          <tr>
            <td>shine</td>
            <td>sh</td>
            <td>10</td>
            <td>4</td>
            <td>4</td>
          </tr>
          <tr>
            <td>specular</td>
            <td>sp</td>
            <td>0.7</td>
            <td>0.6</td>
            <td>0.7</td>
          </tr>
          <tr>
            <td>diffuse</td>
            <td>di</td>
            <td>0.3</td>
            <td>0.4</td>
            <td>0.3</td>
          </tr>
          <tr>
            <td>transmit</td>
            <td>tr</td>
            <td>0.0</td>
            <td>0.0</td>
            <td>0.8</td>
          </tr>
          <tr>
            <td>reflect</td>
            <td>re</td>
            <td>0.0</td>
            <td>0.75</td>
            <td>0.1</td>
          </tr>
          <tr>
            <td>ri</td>
            <td align="center">-</td>
            <td>1.0</td>
            <td>1.65</td>
            <td>1.65</td>
          </tr>
          <tr>
            <td>extinction</td>
            <td>ex</td>
            <td>0.0</td>
            <td>0</td>
            <td>0</td>
          </tr>
          <tr>
            <td></td>
          </tr>
        </table>
      </div>
      <dl compact>
        <dt>shine</dt>
        <dd>Describes the shininess of the object [4..20] where 4
        is a very highly polished surface, and 20 defines a very
        rough surface</dd>
        <dt>specular</dt>
        <dd>Defines the amount of energy due to directional
        reflection of energy (e.g. due to light sources in the
        scene)</dd>
        <dt>diffuse</dt>
        <dd>Defines the portion of energy due to diffuse (non
        directional) surface reflection, e.g. due to ambient
        illumination</dd>
        <dt>transmit</dt>
        <dd>Defines the portion of light [0..1] due to energy
        transmitted through the object</dd>
        <dt>reflect</dt>
        <dd>Defines the portion of light [0..1] due to reflected
        energy</dd>
        <dt>ri</dt>
        <dd>Sets the refractive index</dd>
        <dt>extinction</dt>
        <dd>Set but not used</dd>
      </dl>
      <h3>Example</h3>
      <pre>
        mged&gt; shader air.r proto
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="points" id="points">points</a>
    </dt>
    <dd>Phil Dykstra's points shader</dd>
    <dd>
      <h3>Parameters</h3>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td></td>
          </tr>
        </table>
      </div>
      <dl compact>
        <dt>parameter</dt>
        <dd>Description of parameter</dd>
      </dl>
      <h3>Example</h3>
      <pre>
        mged&gt; shader air.r proto
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="scloud" id="scloud">scloud</a>
    </dt>
    <dd>Lee's ``Solid Clouds''</dd>
    <dd>
      <h3>Parameters</h3>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td></td>
          </tr>
        </table>
      </div>
      <dl compact>
        <dt>parameter</dt>
        <dd>Description of parameter</dd>
      </dl>
      <h3>Example</h3>
      <pre>
        mged&gt; shader air.r proto
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="cloud" id="cloud">cloud</a>
    </dt>
    <dd>Geoffrey Gardner style 2D cloud texture</dd>
    <dd>
      <h3>Parameters</h3>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td></td>
          </tr>
        </table>
      </div>
      <dl compact>
        <dt>parameter</dt>
        <dd>Description of parameter</dd>
      </dl>
      <h3>Example</h3>
      <pre>
        mged&gt; shader air.r proto
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="cs" id="cs">cs</a>
    </dt>
    <dd>Lee's Color space. Maps RPP of region onto color cube</dd>
    <dd>
      <h3>Parameters</h3>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td></td>
          </tr>
        </table>
      </div>
      <dl compact>
        <dt>parameter</dt>
        <dd>Description of parameter</dd>
      </dl>
      <h3>Example</h3>
      <pre>
        mged&gt; shader air.r proto
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="rtrans" id="rtrans">rtrans</a>
    </dt>
    <dd>John's random transmission shader</dd>
    <dd>
      <h3>Parameters</h3>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td></td>
          </tr>
        </table>
      </div>
      <dl compact>
        <dt>parameter</dt>
        <dd>Description of parameter</dd>
      </dl>
      <h3>Example</h3>
      <pre>
        mged&gt; shader air.r proto
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="spm" id="spm">spm</a>
    </dt>
    <dd>Spherical pixmap texture</dd>
    <dd>
      <h3>Parameters</h3>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td></td>
          </tr>
        </table>
      </div>
      <dl compact>
        <dt>parameter</dt>
        <dd>Description of parameter</dd>
      </dl>
      <h3>Example</h3>
      <pre>
        mged&gt; shader air.r proto
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="stack" id="stack">stack</a>
    </dt>
    <dd>Shader stacker</dd>
    <dd>
      <h3>Parameters</h3>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td></td>
          </tr>
        </table>
      </div>
      <dl compact>
        <dt>parameter</dt>
        <dd>Description of parameter</dd>
      </dl>
      <h3>Example</h3>
      <pre>
        mged&gt; shader air.r proto
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="extern" id="extern">stack</a>
    </dt>
    <dd>external Shader stacker</dd>
    <dd>
      <p>The "extern" shader takes a filename as its only argument.
      The file is opened and shaders and their parameters are read
      from the file. The "extern" shader is really an extension of
      the "stack" shader. The contents of the file can have the
      same structure as the content of the stack shader
      parameters.</p>
      <p>WARNING: Since the mged command line format for specifying
      shaders and their parameters was converted to a Tcl/Tk
      syntax, the format in the shader file is NOT what the user is
      accustomed to typing. Instead, the old structparse() format
      should be adhered to:</p>
      <pre>
        shader param=value param=value;shader param=value param=value
</pre>The "extern" shader was developed to overcome limitations in
the v4 database format. The specific limitation addressed is that
there are only 40 characters available for the shader parameter
string.
      <h3>Example</h3>
      <pre>
        mged&gt; shader stuff.r "extern stuff_material.shd" 255 255 255 0

        % cat stuff_material.shd
        texture file=image.pix w=768 n=512;
        plastic sp=.8 di=.2 sh=10 tr=.1 re=.1
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="stxt" id="stxt">stxt</a>
    </dt>
    <dd>Broken and antiquated attempt at solid textures</dd>
    <dd>
      <h3>Parameters</h3>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td></td>
          </tr>
        </table>
      </div>
      <dl compact>
        <dt>parameter</dt>
        <dd>Description of parameter</dd>
      </dl>
      <h3>Example</h3>
      <pre>
        mged&gt; shader air.r proto
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="checker" id="checker">checker</a>
    </dt>
    <dd>checkerboard color texture</dd>
    <dd>
      <h3>Parameters</h3>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td></td>
          </tr>
        </table>
      </div>
      <dl compact>
        <dt>a</dt>
        <dd>3-tuple color for squares</dd>
        <dt>b</dt>
        <dd>3-tuple color for other squares</dd>
        <dt>s</dt>
        <dd>number of squares in each direction (u,v)</dd>
      </dl>
      <h3>Example</h3>
      <pre>
        mged&gt; shader board.r "stack checker a=255/255/255 b=100/100/100 s=8;plastic"
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="fakestar" id="fakestar">fakestar</a>
    </dt>
    <dd>A fake star skymap texture</dd>
    <dd>
      <h3>Parameters</h3>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td></td>
          </tr>
        </table>
      </div>
      <dl compact>
        <dt>parameter</dt>
        <dd>Description of parameter</dd>
      </dl>
      <h3>Example</h3>
      <pre>
        mged&gt; shader air.r proto
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="texture" id="texture">texture</a>
    </dt>
    <dd>maps a .pix file onto an object using u,v coordinates. This
    is usually undesirable for objects made up of more than one
    primitive solid.</dd>
    <dd>
      <h3>Parameters</h3>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td>file</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td>w</td>
            <td>&nbsp;</td>
            <td>512</td>
          </tr>
          <tr>
            <td>n</td>
            <td>l</td>
            <td>w</td>
          </tr>
          <tr>
            <td>transp</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td></td>
          </tr>
        </table>
      </div>
      <dl compact>
        <dt>file</dt>
        <dd>Name of the pix file to map onto the object</dd>
        <dt>w</dt>
        <dd>width of the pix file in pixels</dd>
        <dt>n</dt>
        <dd>number of scanlines in the pix file</dd>
        <dt>transp</dt>
        <dd>a value which indicates the object does not exist (is
        transparent).</dd>
      </dl>
      <p>If the "transp" parameter is not set by the user, then no
      values are deemed transparent.</p>
      <h3>Example</h3>
      <pre>
        mged&gt; shader cube.r stack texture file=eagle-w512-n438.pix w=512 n=438;plastic 0 0 0 0
</pre>
      <pre>
</pre>
      <h3>See Also</h3>
      <pre>
<br>prj, bwtexture
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="bwtexture" id="bwtexture">bwtexture</a>
    </dt>
    <dd>maps a .bw file onto an object using u,v coordinates</dd>
    <dd>
      <h3>Parameters</h3>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td></td>
          </tr>
        </table>
      </div>
      <dl compact>
        <dt>parameter</dt>
        <dd>Description of parameter</dd>
      </dl>
      <h3>Example</h3>
      <pre>
        mged&gt; shader air.r proto
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="bump" id="bump">bump</a>
    </dt>
    <dd>Uses the R,B color data from a .pix file as a surface
    normal bump map</dd>
    <dd>
      <h3>Parameters</h3>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td></td>
          </tr>
        </table>
      </div>
      <dl compact>
        <dt>parameter</dt>
        <dd>Description of parameter</dd>
      </dl>
      <h3>Example</h3>
      <pre>
        mged&gt; shader air.r proto
</pre>
    </dd>
    <dd>
      <hr>
    </dd>
    <dt>
      <a class="c1" name="testmap" id="testmap">testmap</a>
    </dt>
    <dd>Ramps the red value from off to on as the "u" coord of a
    texture map varies from m0 to 1, and the blue value with the "v"
    coordinate. For debugging.</dd>
    <dd>
      <h3>Parameters</h3>
      <div class="c2">
        <table border="1">
          <tr>
            <th>Parameter</th>
            <th>Abbreviation</th>
            <th>Default Value</th>
          </tr>
          <tr>
            <td></td>
          </tr>
        </table>
      </div>
      <dl compact>
        <dt>parameter</dt>
        <dd>Description of parameter</dd>
      </dl>
      <h3>Example</h3>
      <pre>
        mged&gt; shader air.r proto
</pre>
    </dd>
  </dl>
</body>
</html>
